package com.xiefengf.rabbitmq.consumer.utils;

/**
 * @author xiefengf
 * @version 1.0
 * @date 2024/1/11 23:42
 */
public class StringUtils {

    /**
     * fanout 模式
     * 1、交换机名称
     * 2、队列名称
     * 3、路由key
     */
    public static final String FANOUT_EXCHANGE_NAME = "fanout_order_exchange";
    public static final String FANOUT_QUEUE_NAME_1 = "weixin.fanout.queue";
    public static final String FANOUT_QUEUE_NAME_2 = "sms.fanout.queue";
    public static final String FANOUT_QUEUE_NAME_3 = "email.fanout.queue";
    public static final String FANOUT_ROUTE_KEY = "";


    /**
     * Direct 模式
     * 1、交换机名称
     * 2、队列名称
     * 3、路由key
     */
    public static final String DIRECT_EXCHANGE_NAME = "direct_order_exchange";
    public static final String DIRECT_QUEUE_NAME_1 = "weixin.direct.queue";
    public static final String DIRECT_QUEUE_NAME_2 = "sms.direct.queue";
    public static final String DIRECT_QUEUE_NAME_3 = "email.direct.queue";
    public static final String DIRECT_ROUTE_KEY_1 = "weixin";
    public static final String DIRECT_ROUTE_KEY_2 = "sms";
    public static final String DIRECT_ROUTE_KEY_3 = "email";

    /**
     * Topic 模式
     * 1、交换机名称
     * 2、队列名称
     * 3、路由key
     */
    public static final String TOPIC_EXCHANGE_NAME = "topic_order_exchange";
    public static final String TOPIC_QUEUE_NAME_1 = "weixin.topic.queue";
    public static final String TOPIC_QUEUE_NAME_2 = "sms.topic.queue";
    public static final String TOPIC_QUEUE_NAME_3 = "email.topic.queue";
    public static final String TOPIC_ROUTE_KEY_1 = "#.weixin.#";
    public static final String TOPIC_ROUTE_KEY_2 = "*.sms.*";
    public static final String TOPIC_ROUTE_KEY_3 = "#.email";

    /**
     * 消息过期队列
     * 1、交换机名称
     * 2、队列名称
     * 3、路由key
     */
    public static final String DIRECT_TTL_EXCHANGE_NAME = "direct_ttl_exchange";
    public static final String DIRECT_TTL_QUEUE_NAME_1 = "direct.ttl.queue";
    public static final String DIRECT_TTL_QUEUE_NAME_2 = "direct.NOT.ttl.queue";
    public static final String DIRECT_TTL_KEY_1 = "ttl_1";
    public static final String DIRECT_TTL_KEY_2 = "ttl_2";

    /**
     * 消息确认机制(事务+confirm)
     * 1、交换机名称
     * 2、队列名称
     * 3、路由key
     */
    public static final String DIRECT_ACK_EXCHANGE_NAME = "direct_ack_exchange";
    public static final String DIRECT_ACK_QUEUE_NAME_1 = "direct.ack.queue";
    public static final String DIRECT_ACK_KEY = "ack_key";

    /**
     * 死信队列
     * 1、交换机名称
     * 2、队列名称
     * 3、路由key
     */
    public static final String DIRECT_DLX_EXCHANGE_NAME = "direct_dlx_exchange";
    public static final String DIRECT_DLX_QUEUE_NAME_1 = "direct.dlx.queue";
    public static final String DIRECT_DLX_KEY = "dlx_key";

    /**
     * 批量处理消息对立
     * 1、交换机名称
     * 2、队列名称
     * 3、路由key
     */
    public static final String DIRECT_BATCH_EXCHANGE_NAME = "direct_batch_exchange";
    public static final String DIRECT_BATCH_QUEUE_NAME = "direct.batch.queue";
    public static final String DIRECT_BATCH_KEY = "batch_key";

}
